package vip.xiaonuo.dev.modular.wechat.param;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.util.Map;

/**
 * 企业微信消息请求参数
 *
 * @author xsl
 * @date 2024-06-18 11:51
 **/
@Getter
@Setter
public class DevWechatParam {
    /** 指定接收消息的成员 成员ID列表（多个接收者用‘|’分隔，最多支持1000个） @all"时忽略本参数 */
    @Schema(description = "指定接收消息的成员，多个接收者用‘|’分隔", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    String toUser ="@all";

    /** 指定接收消息的部门，部门ID列表，多个接收者用‘|’分隔，最多支持100个。 "@all"时忽略本参数 */
    @Schema(description = "指定接收消息的部门，多个接收者用‘|’分隔", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    String toParty = "@all";

    /** 指定接收消息的标签人员，多个接收者用‘|’分隔，最多支持100个。 */
    @Schema(description = "指定接收消息的标签人员，多个接收者用‘|’分隔", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    String toTag = "@all";

    /** 消息类型，此时固定为：text*/
    @Schema(description = "推送的消息类型，默认为text", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    String msgType = "text";

    /** 企业应用的id，整型*/
    @Schema(description = "企业应用的id", requiredMode = Schema.RequiredMode.REQUIRED)
    String agentId;

    /** 消息文本 */
    @Schema(description = "消息文本", requiredMode = Schema.RequiredMode.REQUIRED)
    Map<String, String> text;

    /** 表示是否是保密消息 */
    @Schema(description = "是否是保密消息,默认保密", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    Integer safe = 1;

    /** 表示是否开启id转化  */
    @Schema(description = "是否开启id转化", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    Integer enableIdTrans = 0;

    /** 表示是否开启重复消息检查 */
    @Schema(description = "是否开启重复消息检查", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    Integer enableDuplicateCheck = 0;

    /** 表示重复消息检查间隔 */
    @Schema(description = "重复消息检查间隔", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    Integer duplicateCheckInterval = 1800;
}
